package com.psjj.privilege.utils;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * md5属于有损耗型加密：只能由密码->密码加密
 *          密码加密无法->密码(无法实现，但可以暴力破解一个一个试试)
 *
 */
public class MD5Util {
	
	public static void main(String[] args) {
		System.out.println(MD5Util.getMD5Str("123456"));
		
	}
	/**
     * MD5 加密
     */ 
    public static String getMD5Str(String str) { 
        MessageDigest messageDigest = null; 
 
        try { 
            messageDigest = MessageDigest.getInstance("MD5"); 
 
            messageDigest.reset(); 
 
            messageDigest.update(str.getBytes("UTF-8")); 
        } catch (NoSuchAlgorithmException e) { 
            System.out.println("NoSuchAlgorithmException caught!"); 
            System.exit(-1); 
        } catch (UnsupportedEncodingException e) { 
            e.printStackTrace(); 
        } 
 
        byte[] byteArray = messageDigest.digest(); 
 
        StringBuffer md5StrBuff = new StringBuffer(); 
 
        for (int i = 0; i < byteArray.length; i++) {             
            if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) 
                md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i])); 
            else 
                md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i])); 
        } 
 
        return md5StrBuff.toString(); 
    }
}
